/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package pessoas.presenter;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.filechooser.FileNameExtensionFilter;
import pessoas.model.Pessoa;
import pessoas.presenter.apoio.OperacaoXml;
import pessoas.view.ImportarPessoaView;

/**
 *
 * @author jakson
 */
public class ImportarContatosPresenter {

    private ImportarPessoaView view;
    private OperacaoXml xml = new OperacaoXml();
    private ArrayList<Pessoa> pessoasTeste = new ArrayList<Pessoa>();

    public ImportarContatosPresenter() {
        view = new ImportarPessoaView(null, true);
        view.getBtnCancelar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                cancelar();
            }
        });

        view.getBtnCorrigirContatos().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                corrigirContatos();
            }
        });

        view.getBtnVisualizarImportados().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                visualizarImportados();
            }
        });

        view.getBtnImportar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                try {
                    importarContatos();
                } catch (IOException ex) {
                    Logger.getLogger(ImportarContatosPresenter.class.getName()).log(Level.SEVERE, null, ex);
                }
            }
        });

        view.getBtnLocalizar().addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent ae) {
                localizarArquivo();
            }
        });

        view.setLocationRelativeTo(view);
        view.setVisible(true);
    }

    private void cancelar() {
        view.dispose();
    }

    private void corrigirContatos() {

    }

    private void visualizarImportados() {

    }

    private void importarContatos() throws IOException {
        String xmlString = null;
        xmlString = xml.leituraXml(view.getTxtLocalizar().getText());
        String nome;
        String tel;
        int ni,nf,ti,tf;
        String contato[] = xmlString.split("<contato>");
        for (int i = 0; i < contato.length - 1; i++) {
            contato[i] = contato[i].replaceAll("<contatos>", "");

        }

        for (int i = 1; i < contato.length - 1; i++) {
            ni = contato[i].indexOf("<Nome>") + 6;
            nf = contato[i].indexOf("</Nome>");

            System.out.println(ni + "          " + nf);
            nome = contato[i].substring(ni, nf);
            String[] n = nome.split(" ");
            ti = contato[i].indexOf("<Telefone>") + 10;
            tf = contato[i].indexOf("</Telefone>");
            tel = contato[i].substring(ti, tf);
            StringBuffer sb = new StringBuffer(tel);
            sb.deleteCharAt(4);
            System.out.println(sb.toString());
            //String verificacao = verefica.verificaTelefone(sb.toString(), "importar");
            //String[] v = verificacao.split(" ");
            //Pessoa p = new Pessoa(n[0], n[1], sb.toString(), v[0], v[1]);
                Pessoa p = new Pessoa(nome, tel);
//            if (v[0].equals("NÃO-IDENTIFICADA") && v[1].equals("DESCONHECIDO")) {
//                PessoasXmlInconrretos.add(p);
//
//            } else {
//                PessoasXml.add(p);
//            }
                pessoasTeste.add(p);

        }
        
        for(int i = 0; i< pessoasTeste.size();i++){
            System.out.print(pessoasTeste.get(i).getNome());
        }

    }

    private void localizarArquivo() {
        JFileChooser chooser = new JFileChooser();
        FileNameExtensionFilter filter = new FileNameExtensionFilter("Arquivo .xml", "xml", "xml");
        chooser.setFileFilter(filter);
        int returnVal = chooser.showOpenDialog(view);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            view.getTxtLocalizar().setText(chooser.getSelectedFile().getAbsolutePath());
        }

        if (!view.getTxtLocalizar().getText().isEmpty()) {
            view.getBtnImportar().setEnabled(true);
        }
    }

}
